/* Copyright (C) 2011 Fredrique Samuels, fredriquesamuels@gmail.com 

 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
#ifndef TRI_PHYSICS_COLLISION_UTILS_H__
#define TRI_PHYSICS_COLLISION_UTILS_H__


#include "../base/vector.h"
#include "../base/matrix.h"

#include <stdlib.h>
#include <Newton.h>


#include "physics_common.h"

namespace tri{

//body manipulation
void TSetBodyMatrix(NewtonBody* body, tri::TVector rot, tri::TVector pos);

//collision shapes
NewtonCollision* TCreateNewtonBox (NewtonWorld* world,tri::TVector size,int shapeId);
NewtonCollision* TCreateNewtonSphere (NewtonWorld* g_world,tri::TVector size, int shapeId);
NewtonCollision* TCreateNewtonCylinder (NewtonWorld* g_world,tri::TVector size, int shapeId);
NewtonCollision* TCreateNewtonHeightField (NewtonWorld* g_world,tri::TVector size, int shapeId);

//rigid bodies
NewtonBody* TCreateRigidBody (NewtonWorld* world, void* metaData, 
		NewtonCollision* shape, dFloat mass);

}

#endif
